package com.todo.event.activity.application.backend.service;

import com.todo.common.common.entity.response.BizPageResponse;
import com.todo.common.common.entity.response.BizResponse;
import com.todo.event.activity.iface.backend.request.*;
import com.todo.event.activity.iface.backend.response.EventDecisionBaseResp;
import com.todo.event.activity.iface.backend.response.EventDecisionDetailResp;

/**
 * @author azhebuxing
 * @date 2025/1/11 21:26
 * @description
 */
public interface EventDecisionBackendService {

    /**
     * 新增事件决策
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> insertEventDecision(InsertEventDecisionReq req);

    /**
     * 更新事件决策
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> updateEventDecision(UpdateEventDecisionReq req);

    /**
     * 根据主键删除事件决策
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> removeEventDecisionById(RemoveEventDecisionByIdReq req);

    /**
     * 根据主键查询事件决策详情
     *
     * @param req
     * @return
     */
    BizResponse<EventDecisionDetailResp> queryEventDecisionById(QueryEventDecisionDetailByIdReq req);

    /**
     * 分页查询事件决策基础信息
     *
     * @param req
     * @return
     */
    BizPageResponse<EventDecisionBaseResp> queryEventDecisionPage(QueryEventDecisionPageReq req);

    /**
     * 测试事件决策属性
     *
     * @param req
     * @return
     */
    BizResponse<String> testEventDecisionProperty(TestEventDecisionPropertyReq req);

    /**
     * 启用事件决策
     *
     * @param req
     * @return
     */
    BizResponse<Boolean> enableEventDecision(EnableEventDecisionReq req);
}
